struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2)
{
  // 1.【递归结束】条件
  // 如果 l1 或者 l2 其中一个 NULL，那么就使用另一个节点，作为根节点
  if(l1 == NULL) return l2;
  if(l2 == NULL) return l1;

  // 2.【递归】取 min(l1, l2) 下一个 节点，进行递归
  if(l1->val < l2->val)
  {
    l1->next = mergeTwoLists(l1->next, l2); // 递归
    return l1;
  }
  else
  {
    l2->next = mergeTwoLists(l1, l2->next); // 递归
    return l2;
  }
}
